// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "SQLTableSourceImpl.h"
#include "../../../utils/common_ptr.h"

class SQLUnnestTableSource : public SQLTableSourceImpl
{
public:
  SQLExpr_list_ptr items;
  SQLName_list_ptr columns;
  BOOL_ptr ordinality;

  SQLUnnestTableSource();
  SHAREDOBJECT(SQLUnnestTableSource);

  // @Override
  void accept0(SQLASTVisitor_ptr v);

  SQLName_list_ptr getColumns();

  void addColumn(SQLName_ptr column);

  BOOL_ptr isOrdinality();

  void setOrdinality(BOOL_ptr ordinality);

  SQLExpr_list_ptr getItems();

  void addItem(SQLExpr_ptr item);

  SQLObject_ptr clone();
};
